﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:chrome="clr-namespace:Microsoft.Windows.Controls.Chromes"
                    xmlns:local="clr-namespace:Microsoft.Windows.Controls"
                    xmlns:coreConverters="clr-namespace:Microsoft.Windows.Controls.Core.Converters">

    <coreConverters:InverseBoolConverter x:Key="InverseBoolConverter" />
    
    <LinearGradientBrush x:Key="ColorPickerDarkBorderBrush" EndPoint="0.5,1" StartPoint="0.5,0">
        <GradientStop Color="#FFA3AEB9" Offset="0"/>
        <GradientStop Color="#FF8399A9" Offset="0.375"/>
        <GradientStop Color="#FF718597" Offset="0.375"/>
        <GradientStop Color="#FF617584" Offset="1"/>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="PopupBackgroundBrush" StartPoint="0,0" EndPoint="0,1">
        <LinearGradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Offset="0" Color="#FFffffff"/>
                <GradientStop Offset="1" Color="#FFE8EBED"/>
            </GradientStopCollection>
        </LinearGradientBrush.GradientStops>
    </LinearGradientBrush>

    <!-- =============================================================================== -->
    <!-- SplitButton                                                                     -->
    <!-- =============================================================================== -->

    <Style TargetType="{x:Type local:SplitButton}">
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="IsTabStop" Value="False" />
        <Setter Property="HorizontalContentAlignment" Value="Center" />
        <Setter Property="VerticalContentAlignment" Value="Center" />
        <Setter Property="Padding" Value="3"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:SplitButton}">
                    <Grid x:Name="MainGrid" SnapsToDevicePixels="True">
                        <chrome:ButtonChrome x:Name="ControlChrome" RenderEnabled="{TemplateBinding IsEnabled}" CornerRadius="2.75">
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>
                                <Button x:Name="PART_ActionButton" Margin="0" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" Padding="{TemplateBinding Padding}" >
                                    <Button.Template>
                                        <ControlTemplate TargetType="Button">
                                            <ContentPresenter />
                                        </ControlTemplate>
                                    </Button.Template>
                                    <Grid>
                                        <chrome:ButtonChrome x:Name="ActionButtonChrome"
                                                         CornerRadius="2.75, 0, 0, 2.75"                                                         
                                                         RenderNormal="False"
                                                         RenderEnabled="{TemplateBinding IsEnabled}"
											             RenderMouseOver="{Binding IsMouseOver, ElementName=PART_ActionButton}"
											             RenderPressed="{Binding IsPressed, ElementName=PART_ActionButton}" >
                                            <ContentPresenter Name="ActionButtonContent" Margin="{TemplateBinding Padding}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="true" />
                                        </chrome:ButtonChrome>
                                    </Grid>
                                </Button>
                                <ToggleButton x:Name="PART_ToggleButton" Grid.Column="1" IsTabStop="False"
                                                  IsChecked="{Binding IsOpen, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
                                                  IsHitTestVisible="{Binding IsOpen, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolConverter}}" >
                                    <ToggleButton.Template>
                                        <ControlTemplate TargetType="ToggleButton">
                                            <ContentPresenter />
                                        </ControlTemplate>
                                    </ToggleButton.Template>
                                    <Grid>
                                        <chrome:ButtonChrome x:Name="ToggleButtonChrome"                                                         
                                                         CornerRadius="0, 2.75, 2.75, 0"
                                                         RenderNormal="False"
                                                         RenderChecked="{TemplateBinding IsOpen}"
                                                         RenderEnabled="{TemplateBinding IsEnabled}"
											             RenderMouseOver="{Binding IsMouseOver, ElementName=PART_ToggleButton}"
											             RenderPressed="{Binding IsPressed, ElementName=PART_ToggleButton}" >
                                            <Grid x:Name="arrowGlyph" IsHitTestVisible="False" Margin="4,3,4,3">
                                                <Path Width="7" Height="4" Data="M 0,1 C0,1 0,0 0,0 0,0 3,0 3,0 3,0 3,1 3,1 3,1 4,1 4,1 4,1 4,0 4,0 4,0 7,0 7,0 7,0 7,1 7,1 7,1 6,1 6,1 6,1 6,2 6,2 6,2 5,2 5,2 5,2 5,3 5,3 5,3 4,3 4,3 4,3 4,4 4,4 4,4 3,4 3,4 3,4 3,3 3,3 3,3 2,3 2,3 2,3 2,2 2,2 2,2 1,2 1,2 1,2 1,1 1,1 1,1 0,1 0,1 z" Fill="#FF000000"/>
                                            </Grid>
                                        </chrome:ButtonChrome>
                                    </Grid>
                                </ToggleButton>
                            </Grid>
                        </chrome:ButtonChrome>

                        <Popup x:Name="PART_Popup" 
                               HorizontalOffset="1"
                               VerticalOffset="1"
                               AllowsTransparency="True"
                               StaysOpen="False"
                               Placement="Bottom"
                               Focusable="False"
                               IsOpen="{Binding IsChecked, ElementName=PART_ToggleButton}">
                            <!-- TODO: Create Popup Styles that can be reused on all popups in the toolkit-->
                            <Border BorderThickness="1" Background="{StaticResource PopupBackgroundBrush}" BorderBrush="{StaticResource ColorPickerDarkBorderBrush}" >
                                <ContentPresenter Content="{TemplateBinding DropDownContent}" />
                            </Border>
                        </Popup>

                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

</ResourceDictionary>